Fonction "Suite Croissante"

Pourquoi les piles ?

Conservation de l'ordre des données et ne demande pas de recherche complexe

La fonction


def suite_croissante(t):
	"""
	renvois la plus grande suite croissante d'un tableau non vide
	donnee en entre: tableau d'entier
	renvois: la taille de la plus grande suite croissante (int) et la suite en question (list)
	"""
    assert len(t)>0, "le tableau est vide"
    compteur_final=0
    compteur_comparer= 0
    j=0
    while j!= len(t):
        pile1=PileDyna()
        for i in range(j, len(t)):
            pile1.empiler(t[i])
			j+=1
            if i==len(t)-1:
                break
            if t[i]>=t[i+1]:
                break
        pile2= PileDyna()
        while not pile1.est_vide():
            pile2.empiler(pile1.depiler())
            compteur_comparer+=1
        if compteur_comparer>=compteur_final:
            pile3= PileDyna()
            while not pile2.est_vide():
                pile3.empiler(pile2.depiler())
            compteur_final= compteur_comparer
        compteur_comparer=0
    return compteur_final, pile3.afficher()

			
3 piles, 2 variables de type int et une boucle contenant une boucle de parcour, une boucle de création de la pile2 et potentiellement une boucle de création de la pile3. La fonction prend comme arguments: un tableau d'entier et renvois la pile numéro 3 contenant la plus grande suite croissante
Chaîne à afficher si l'image ne peut s'afficher
Renvois seulement la dernière plus grande suite croissante du tableau et c'est une fonction en O(n²)

Le bloc des tests


if "__main__"== __name__:
    def cree_tableau():
        tab= []
        for i in range(40):
            tab.append(randint(0,10))
        return tab
    tableau1= [0,1,2,1,3,2]
    tableau2= [1,2,1,3]
    tableau3=[1,2,3]
    tableau4=[]
    print(suite_croissante(tableau1))
    print(suite_croissante(tableau2))
    print(suite_croissante(tableau3))
    tab1= cree_tableau()
    print(tab1)
    print(suite_croissante(tab1))
    print(suite_croissante(tableau4)) #test du assert

			
4 tableaux définits, une fonction qui créé un tableau aléatoire, un affichage du tableau aléatoire, 5 appels et affichages de la fonction principal.
Chaîne à afficher si l'image ne peut s'afficher Chaîne à afficher si l'image ne peut s'afficher
résultat des tests